unit SmallStruct.Controller;

interface

uses SmallStruct.Core,
  SmallStruct.ActionView,
  SmallStruct.BusinessObject;

const
  SS_CONTROLLER_NAVIGATOR_NAME: string = 'CONTROLLER_NAVIGATOR';

type
  ISSController = interface(ISSRuntimeObject)
    ['{6CFB537D-4CCA-444C-BE68-4C537C6BF335}']
    function FindActionView(const AActionViewName: string): ISSActionView;
    function GetActionActionViewName: string;
    function GetSystemObject: ISSSystemObject;
    function RequestAction(const AActionViewName, AActionCaption: string): Boolean;
    procedure AppendActionView(const AActionViewName: string);
    procedure DeleteActionView(const AActionViewName: string);
  end;

  ISSControllerContext = interface(ISSObjectContext)
    ['{C3F183F1-F2FF-4261-B2B6-8FA1E8AB6347}']
    function GetSystemObject: ISSSystemObject;
  end;

  ISSControllerNavigatorContext = interface(ISSObjectContext)
    ['{341B8E66-AE4C-402C-8E1D-460B357D54C0}']
    function GetController: ISSController;
  end;

  ISSControllerNavigator = interface(ISSRuntimeObject)
    ['{A97C4BBB-40EA-44E4-9AC9-25BC60ADDF7E}']
    procedure SetTitle(const ATitle: string; Resource: ISSObjectContainer);
  end;

  ISSActionViewContext = interface(ISSObjectContext)
    ['{1DC19C64-723E-4220-A93B-154530765D61}']
    function GetRequestActionViewName: string;
    function GetController: ISSController;
    function GetSystemObject: ISSSystemObject;
  end;

implementation

end.
